//
//  NWHomeModel.swift
//  微博01
//
//  Created by 牛威 on 15/12/10.
//  Copyright © 2015年 牛威. All rights reserved.
//

import UIKit

class NWHomeModel: NSObject {
    

    
    /// 微博创建时间
    var created_at : String?
    /// 微博ID
    var id : Int = 0
    /// 微博信息内容
    var text : String?
    /// 微博来源
    var source : String?
    /// 缩略图配图数组 字典数组 里面是字典外层是数组 前面是key thumbnail_pic : url
    var pic_urls : [[String : String]]?
    /// 用户详细信息
    var user : NWUserModel?
    /// 被转发的原微博信息字段，当该微博为转发微博时返回
    var retweeted_status : NWHomeModel?
    
    
    init(dict: [String : AnyObject]) {
        
        super.init()
        
        setValuesForKeysWithDictionary(dict)
        
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        
        
//        setValuesForKeysWithDictionary 会依次调用 setValueForKey
//        如果模型中包含 自定义对象，可以重写 setValueForKey
//        重写时需要注意
//        设置完自定义对象属性后，需要 return
//        在代码的最后需要 super.setValue(value, forKey: key)
        //如果key是user 就另作处理
        
        if key == "user" {
            
            if let dict = value as? [String: AnyObject] {
               
                user = NWUserModel(dict: dict)
            }
            
            return
        }
        
        if key == "retweeted_status" {
            
            if let dict = value as? [String : AnyObject]{
            
              retweeted_status = NWHomeModel(dict: dict)
            
            }
            
           return
        }
        
        super.setValue(value, forKey: key)
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
    
    override var description : String {
        
        get {
            
            let keys = ["created_at","id","text","source","user","pic_urls","retweeted_status"]
            
            return dictionaryWithValuesForKeys(keys).description
            
        }
        
    }

}
